/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.flowernet.entity;

import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;

/**
 *
 * @author Felipe
 */
@Entity
public class Venda implements Serializable {

    @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
    private Long IdVenda;
    private Integer desconto;
    @Enumerated(EnumType.STRING)
    private StatusPedido statusPedido;
    @Enumerated(EnumType.STRING)
    private FormaDePagamento formaDePagamento;
    @ManyToOne
    private Cliente cliente;
    @ManyToOne(cascade= CascadeType.MERGE)
    private Floricultura floricultura;
    @OneToOne(cascade= CascadeType.REMOVE, optional=false)
    private Pedido pedido;

    public Venda() {
    }

    public Venda(Integer desconto, StatusPedido statusPedido, Cliente cliente) {
        this.desconto = desconto;
        this.statusPedido = statusPedido;
        this.cliente = cliente;
    }

    public Long getIdVenda() {
        return IdVenda;
    }

    public void setIdVenda(Long IdVenda) {
        this.IdVenda = IdVenda;
    }

    public Integer getDesconto() {
        return desconto;
    }

    public void setDesconto(Integer desconto) {
        this.desconto = desconto;
    }

    public StatusPedido getStatusPedido() {
        return statusPedido;
    }

    public void setStatusPedido(StatusPedido statusPedido) {
        this.statusPedido = statusPedido;
    }

    public Cliente getCliente() {
        return cliente;
    }

    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }

    public Floricultura getFloricultura() {
        return floricultura;
    }

    public void setFloricultura(Floricultura floricultura) {
        this.floricultura = floricultura;
    }

    public Pedido getPedido() {
        return pedido;
    }

    public void setPedido(Pedido pedido) {
        this.pedido = pedido;
    }

    public FormaDePagamento getFormaDePagamento() {
        return formaDePagamento;
    }

    public void setFormaDePagamento(FormaDePagamento formaDePagamento) {
        this.formaDePagamento = formaDePagamento;
    }
    
    @Override
    public int hashCode() {
        int hash = 7;
        hash = 41 * hash + (this.IdVenda != null ? this.IdVenda.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Venda other = (Venda) obj;
        if (this.IdVenda != other.IdVenda && (this.IdVenda == null || !this.IdVenda.equals(other.IdVenda))) {
            return false;
        }
        return true;
    }
    
    

}
